package com.tree.backend.utils;

/**
 * 用户上下文工具类
 * 使用ThreadLocal存储当前线程的用户信息
 */
public class UserContext {
    // 使用ThreadLocal存储用户名
    private static final ThreadLocal<String> usernameHolder = new ThreadLocal<>();
    
    /**
     * 设置当前线程的用户名
     * @param username 用户名
     */
    public static void setUsername(String username) {
        usernameHolder.set(username);
    }
    
    /**
     * 获取当前线程的用户名
     * @return 当前用户名
     */
    public static String getUsername() {
        return usernameHolder.get();
    }
    
    /**
     * 清除当前线程的用户信息
     * 在请求结束时调用，防止内存泄漏
     */
    public static void clear() {
        usernameHolder.remove();
    }
}